[PATCH] Correctly handle signed 32-bit time_t types
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1124541
Forwarded: no
dovecot handles 32-bit time_t in a couple of different ways, but neither quite
works currently. Setting TIME_T_MAX_BITS to 31 isn't correctly handled in
places where time_t values are constructed, for example in
io_loop_get_wait_time().
Similarly, setting TIME_T_MAX_BITS = 32 and defining TIME_T_SIGNED is not
correctly handled by tm_is_too_large().
This change fixes tm_is_too_large() to set max_time to the correct maximum date
representable by a signed 32-bit time_t.
Closes: #1124541
Gbp-Pq: Name Correctly_handle_signed_32-bit_time_t_types.patch
Noah Meyerhans [Tue, 25 Nov 2025 21:38:42 +0000 (16:38 -0500)]
[PATCH] Work around test failure on big-endian architectures
Because the endianness of the target system results in data being
layed out differently in memory, the manually constructed test input
doesn't result in the expected failure modes, which is interpreted as
a test failure.
This is not a permanent fix. See
https://dovecot.org/mailman3/archives/list/dovecot@dovecot.org/message/FZBVU55TK5332SMZSSDNWIVJCWGUAJQS/
Gbp-Pq: Name work-around-test-failure-on-big-endian-architectures.patch
Noah Meyerhans [Thu, 14 May 2026 17:29:38 +0000 (13:29 -0400)]
[PATCH] Correctly handle signed 32-bit time_t types
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1124541
Forwarded: no
dovecot handles 32-bit time_t in a couple of different ways, but neither quite
works currently. Setting TIME_T_MAX_BITS to 31 isn't correctly handled in
places where time_t values are constructed, for example in
io_loop_get_wait_time().
Similarly, setting TIME_T_MAX_BITS = 32 and defining TIME_T_SIGNED is not
correctly handled by tm_is_too_large().
This change fixes tm_is_too_large() to set max_time to the correct maximum date
representable by a signed 32-bit time_t.
Closes: #1124541
Gbp-Pq: Name Correctly_handle_signed_32-bit_time_t_types.patch
Noah Meyerhans [Tue, 25 Nov 2025 21:38:42 +0000 (16:38 -0500)]
[PATCH] Work around test failure on big-endian architectures
Because the endianness of the target system results in data being
layed out differently in memory, the manually constructed test input
doesn't result in the expected failure modes, which is interpreted as
a test failure.
This is not a permanent fix. See
https://dovecot.org/mailman3/archives/list/dovecot@dovecot.org/message/FZBVU55TK5332SMZSSDNWIVJCWGUAJQS/
Gbp-Pq: Name work-around-test-failure-on-big-endian-architectures.patch
[ Luca Boccassi ]
* [6261bfd] Install and use sysusers.d config file
[ Noah Meyerhans ]
* [9a7a738] Add tests for bug 1134464 regression
* [6f1a08b] remove unreproducible TEST_DIR in dovecot-config
* [185a225] New upstream version 2.4.4+dfsg1
- CVE-2026-27851: lib-var-expand: Safe filter leaks to all following pipelines
- CVE-2026-40016: Sieve :contains/:matches O(N×M) Substring Match Bypasses
sieve_max_cpu_time Limit (130× Overrun)
- CVE-2026-33603: login: Base64 input can contain tabs that bypass IPC
protection
- CVE-2026-40020: IMAP folders can be shared-spammed to everyone
- CVE-2026-42006: imap-login: Excessive memory usage DoS
(Closes: #1136444)
* [a6c0328] settings: Use correct symbol STORAGE_LDAP in settings-get.pl
* [874cea7] refresh patches
* [a4af2a3] Fix test failures on 32-bit systems
[PATCH] Correctly handle signed 32-bit time_t types
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1124541
Forwarded: no
dovecot handles 32-bit time_t in a couple of different ways, but neither quite
works currently. Setting TIME_T_MAX_BITS to 31 isn't correctly handled in
places where time_t values are constructed, for example in
io_loop_get_wait_time().
Similarly, setting TIME_T_MAX_BITS = 32 and defining TIME_T_SIGNED is not
correctly handled by tm_is_too_large().
This change fixes tm_is_too_large() to set max_time to the correct maximum date
representable by a signed 32-bit time_t.
Closes: #1124541
Gbp-Pq: Name Correctly_handle_signed_32-bit_time_t_types.patch
Noah Meyerhans [Tue, 25 Nov 2025 21:38:42 +0000 (16:38 -0500)]
[PATCH] Work around test failure on big-endian architectures
Because the endianness of the target system results in data being
layed out differently in memory, the manually constructed test input
doesn't result in the expected failure modes, which is interpreted as
a test failure.
This is not a permanent fix. See
https://dovecot.org/mailman3/archives/list/dovecot@dovecot.org/message/FZBVU55TK5332SMZSSDNWIVJCWGUAJQS/
Gbp-Pq: Name work-around-test-failure-on-big-endian-architectures.patch
* [2e35d07] autopkgtests: Add managesieved authentication test
* [226112b] Remove generated settings-history-pigeonhole.h on clean
* [dd36c64] ci: replace obsolete build-package-twice test
* [d6da850] use an alternate temporary directory in the test suite
(Closes: #1133346)
* [80afe14] ci: disable the validate-package-clean-up check
* [c9e076a] drop stale lintian overrides
Timo Sirainen [Thu, 26 Feb 2026 10:29:12 +0000 (12:29 +0200)]
[PATCH] lib: Preserve errno in our malloc() and free() wrappers
Various places assume that e.g. t_strdup_printf() calls and such don't
modify errno. But because they internally call malloc() or calloc(), this
isn't actually guaranteed now and it can happen at least with newer glibc
versions. Explicitly preserve the errno for these calls where it might
be a problem.
Gbp-Pq: Name lib_Preserve_errno_in_our_malloc_and_free_wrappers.patch
Noah Meyerhans [Thu, 5 Mar 2026 01:08:14 +0000 (20:08 -0500)]
[PATCH] Correctly handle signed 32-bit time_t types
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1124541
Forwarded: no
dovecot handles 32-bit time_t in a couple of different ways, but neither quite
works currently. Setting TIME_T_MAX_BITS to 31 isn't correctly handled in
places where time_t values are constructed, for example in
io_loop_get_wait_time().
Similarly, setting TIME_T_MAX_BITS = 32 and defining TIME_T_SIGNED is not
correctly handled by tm_is_too_large().
This change fixes tm_is_too_large() to set max_time to the correct maximum date
representable by a signed 32-bit time_t.
Closes: #1124541
Gbp-Pq: Name Correctly_handle_signed_32-bit_time_t_types.patch
Noah Meyerhans [Tue, 25 Nov 2025 21:38:42 +0000 (16:38 -0500)]
[PATCH] Work around test failure on big-endian architectures
Because the endianness of the target system results in data being
layed out differently in memory, the manually constructed test input
doesn't result in the expected failure modes, which is interpreted as
a test failure.
This is not a permanent fix. See
https://dovecot.org/mailman3/archives/list/dovecot@dovecot.org/message/FZBVU55TK5332SMZSSDNWIVJCWGUAJQS/
Gbp-Pq: Name work-around-test-failure-on-big-endian-architectures.patch
* [e8f1499] Drop stale build-dependency on libdb-dev (Closes: #1119173)
* [86b8fb2] lib: Preserve errno in our malloc() and free() wrappers
(Closes: #1128400)
* [99e1cd6] backport upstream fix for crash in trash plugin (Closes: #1127029)
Noah Meyerhans [Wed, 4 Feb 2026 16:09:21 +0000 (11:09 -0500)]
[PATCH] Correctly handle signed 32-bit time_t types
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1124541
Forwarded: no
dovecot handles 32-bit time_t in a couple of different ways, but neither quite
works currently. Setting TIME_T_MAX_BITS to 31 isn't correctly handled in
places where time_t values are constructed, for example in
io_loop_get_wait_time().
Similarly, setting TIME_T_MAX_BITS = 32 and defining TIME_T_SIGNED is not
correctly handled by tm_is_too_large().
This change fixes tm_is_too_large() to set max_time to the correct maximum date
representable by a signed 32-bit time_t.
Closes: #1124541
Gbp-Pq: Name Correctly_handle_signed_32-bit_time_t_types.patch
Noah Meyerhans [Tue, 25 Nov 2025 21:38:42 +0000 (16:38 -0500)]
[PATCH] Work around test failure on big-endian architectures
Because the endianness of the target system results in data being
layed out differently in memory, the manually constructed test input
doesn't result in the expected failure modes, which is interpreted as
a test failure.
This is not a permanent fix. See
https://dovecot.org/mailman3/archives/list/dovecot@dovecot.org/message/FZBVU55TK5332SMZSSDNWIVJCWGUAJQS/
Gbp-Pq: Name work-around-test-failure-on-big-endian-architectures.patch
Noah Meyerhans [Tue, 25 Nov 2025 21:38:42 +0000 (16:38 -0500)]
[PATCH] Work around test failure on big-endian architectures
Because the endianness of the target system results in data being
layed out differently in memory, the manually constructed test input
doesn't result in the expected failure modes, which is interpreted as
a test failure.
This is not a permanent fix. See
https://dovecot.org/mailman3/archives/list/dovecot@dovecot.org/message/FZBVU55TK5332SMZSSDNWIVJCWGUAJQS/
Gbp-Pq: Name work-around-test-failure-on-big-endian-architectures.patch
* [e34626c] import upstream fix for possible crash in ldap userdb
(Closes: #1121000)
* [8d95d15] d/control: add libpcre2-dev to build-deps (Closes: #1121193)
* [7b23f06] Work around test failure on big-endian architectures
Dovecot 2.4 introduced a regression that broke GSSAPI authentication for
some clients. This patch contains a fix provided by the upstream maintainers.
Last-Update: 2025-05-02
Gbp-Pq: Name bug1104549-gssapi-regression.patch